maven
NOTE
Maven 의존성 트리 확인과, 삭제된 아티팩트(
javax.activation:1.0.2)로 인한 다운로드 실패를dependencyManagement로 해결한 사례 정리.
📌 개념
- 문제 상황:
javax.activation:1.0.2JAR이 저장소에서 삭제되어 다운로드 실패 - 문제 원인 2가지
org.jvnet.jax-ws-commons.spring→activation 1.0.2다운로드 시도org.jvnet.staxex→ 버전 변경으로 인한 error
- 해결 방향:
dependencyManagement로 버전을 상위에서 고정(우선순위 주입)
💻 예시
의존성 트리 확인
# mvn or mvnd
mvnd dependency:tree트리 출력(발췌):
[INFO] kr.co.mirincom:evcm-apt:war:2.0.0
[INFO] +- org.springframework:spring-context:jar:3.2.4.RELEASE:compile
[INFO] +- org.jvnet.jax-ws-commons.spring:jaxws-spring:jar:1.8:compile
[INFO] | +- com.sun.xml.ws:jaxws-rt:jar:2.1.3:compile
[INFO] | | \- javax.activation:activation:jar:1.1:compile
[INFO] | +- org.jvnet.staxex:stax-ex:jar:1.7.8:compile
[INFO] \- org.apache.poi:poi:jar:3.9:compile문제 의존성 (exclusions 적용)
<dependency>
<groupId>org.jvnet.jax-ws-commons.spring</groupId>
<artifactId>jaxws-spring</artifactId>
<version>1.8</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
</exclusion>
<exclusion>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
</exclusion>
</exclusions>
</dependency>해결 — dependencyManagement로 버전 고정
<dependencyManagement>
<dependencies>
<!-- activation 버전 업 (1.1) -->
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1</version>
</dependency>
<!-- stax-ex 버전 업 -->
<dependency>
<groupId>org.jvnet.staxex</groupId>
<artifactId>stax-ex</artifactId>
<version>1.7.8</version>
</dependency>
<dependency>
<groupId>com.sun.xml.stream.buffer</groupId>
<artifactId>streambuffer</artifactId>
<version>1.5</version>
</dependency>
</dependencies>
</dependencyManagement>